This invention relates generally to improvements in computer systems, and, more particularly, to a user interface for use with computer systems.
Numerous advances have been made recently to simplify the manner in which users interact with computer systems. For example, graphic user interfaces (GUI) have been created to provide visually intuitive means of interacting with a computer. In particular, GUIs such as that available in the Workplace Shell, part of the OS/2(copyright) operating system, commercially available from IBM Corporation, Boca Raton, Fla., and Windows GUI for the DOS operating system, commercially available form, Microsoft Corp., Redmond Wash., enable users to process and store data using graphic metaphors which resemble real life objects. Such interfaces have vastly reduced the level of sophistication and experience necessary for users to interact in a meaningful manner with the computer system and, accordingly, have increased user productivity.
Such graphic user interfaces, referred to hereinafter as legacy GUIs, are somewhat static in their format and do not readily adjust to a user""s task very well. As a result, applications are designed to work with the limits of the graphic user interface, rather than the graphic user interface configuring itself to the task performed by an application.
One of the major developments in the field of software design has been the emergence of object-oriented technology. As explained in greater detail hereinafter, object-oriented technology enables the analysis, design and implementation of software systems with intelligent, autonomous agents called objects. Such objects facilitate the design of modular software which more closely mimics the physical or logical entities within the real world.
One of the more recent developments in object-oriented programming is the Java(copyright) programming language developed by Sun Microsystems, Mountain View, Calif. The Java programming language is an object-oriented language, having many elements in common with the C programming language and C++ programming language, with additional modifications. The Java programming language has the benefits of an interpreted language in the performance of compiled code. To enable Java applications to execute on a computer network, a compiler generates an architecture-neutral object file format, i.e. the compiled code is executable on many processors, given the presence of the Java-run time system.
The Java languages enables developers to write custom applications called Java applets. When integrated into webpages delivered over the Internet, Java applets allow expert graphics rendering, real-time interaction with users, live information updating and full use of multimedia and instant interaction with servers over a computer network.
The Java language and environment, including the JavaBeans specification provide mechanisms for the creation and management of small components whose function represent the building block to use in applications such as web applications. The term component as used in the specification, refers to a Java component which participates in a class definition and has a user interface.
Object-oriented environments, such as the Java virtual machine (JVM) environment, facilitate the design of beans or applets, useful in a network environment. In a network environment much of the functionality of applications is stored not on the actual user""s computing platform but is accessible through a computer network such as a LAN or a public network such as the Internet. As a result, there is a current trend for reducing the complexity not only of applications and computer hardware architectures but also the interfaces used for computers which operate in a network environment. Accordingly, the legacy graphic user interfaces used with prior computer architectures and operating systems are not suitable for use with the emerging field of network computers (NC) and applications such as beans or applets which execute thereon.
A need exists, therefore, for a user interface which interacts with object-oriented applications, particularly in the JVM environment, which is capable of dynamically adapting itself to the specific interface requirements of an applet.
A need further exists for a user interface that is suitable for use with network computers and the dynamics of distributed computing and data communications in a network environment.
The present invention provides a mechanism for adding graphical user interfaces to applications in an object-oriented environment. Such applications may comprise Java beans, applets or components. The inventive graphic user interface referred to hereinafter as InfoCenter comprises a visual user interface, e.g. an action bar which contain a set of buttons and menus as well as a set of widget and property/command panels, as well as a communication interface through which configuration and user responses are exchanged with applets. The relationship between the InfoCenter and an applet is based on the applet communicating selection and user interface information to the InfoCenter, and the InfoCenter handling the user gestures by calling methods on specific interfaces of the applet. In the present invention communications between the InfoCenter and applets occur over an information bus architecture referred to as the InfoBus, as described hereafter.
According to one embodiment of the invention, a method for dynamically generating a user interface in a network computer environment comprises the steps of receiving an announcement of an object selection from an applet, querying the selection object for a user interface description, displaying an action bar graphically based on the user interface description, and responding to user selections. The user interface may display additional panels or pop up graphic entities in response to selection of a button or menu item by a user. In response to a user""s selection to alter a property of the applet or send a command to the applet, the user interface calls the appropriate method of the class specified in the user interface description supplied by the applet. Utilizing these interfaces, applications may dynamically configure the InfoCenter user interface with their own user interface descriptions and the user interface response to user input and calls the available methods described in the user interface description.